package day20180129.designMode.four_Factory;

/**
 * Created by 14394 on 2018/1/29.
 */
public class Test {

    /*实例：hibernate切换数据库只需要换方言和驱动即可
    *
    *     优点：创建一个对象，只需知道其名称即可
    *          屏蔽产品具体实现，调用者只关心产品的接口
    *
    *      使用场景：日志记录器
    *               数据库访问
    *               设计连接服务器的框架
    *         注意事项：复杂对象适合使用工厂模式，简单对象，特别是只需要通过new即可创建的对象无需使用工厂模式
    *
      *      * */
    public static void main(String[] args) {
        Factory factory = new IDCardFactory();//定义模板形成实例工厂
        //用模板模式生成product实例
        Product card1 = factory.create("小明");
        Product card2 = factory.create("小红");
        Product card3 = factory.create("小王");
        Product card4 = factory.create("老王");

        card1.use();//调用工厂中的实例方法
        card2.use();
        card3.use();
        card4.use();

    }
}
